package com.chinawayltd.ews.sample.manager.openApi;

import com.chinawayltd.ews.sample.model.openApi.*;

import java.util.List;

/**
 * G7 openApi的查询Service
 * @program: g7ews4java-sample
 * @description:
 * @author: xiazj
 * @create: 2018-04-17 19:45
 **/
/**
 * @author: chenxin
 * @create: 2018年4月25日 下午4:16:39
 */
public interface OpenApiManager {

    /**
     * 查询某个机构下的全部车辆信息，如果数据超过100条会自动分页查询
     * @param orgcode_like
     * @return
     */
    List<TruckDTO> getTrunckAllByOrgCode(String orgcode_like) throws Exception;

    /**
     * 查询车辆信息
     * @param orgcode_like 机构号，右匹配
     * @param carnum_like 车牌号模糊匹配，左右匹配
     * @param page_no 页码
     * @param page_size 每页数量
     * @param updatetime_ge 更新时间，大于等于, 格式: yyyy-MM-dd HH:mm:ss
     * @return
     */
    List<TruckDTO> getTrunckList(String orgcode_like, String carnum_like,
                                 Integer page_no, Integer page_size, String updatetime_ge) throws Exception;

    /**
     * 查询驾驶员信息
     * @param updatetime 更新时间(example: 2017-10-27 00:00:00)
     * @param orgcode_like 机构号，右匹配
     * @return
     */
    List<DriverDTO> getDriverList(String updatetime, String orgcode_like) throws Exception;
    
    /**
     * 查询车辆油耗
     * @author: chenxin
     * @date: 2018年4月25日
     * @param plateNum
     * @param from
     * @param to
     * @return
     */
	VehicleStatisticsDailyDTO getVehicleStatistics(String plateNum, String from, String to) throws Exception;

    /**
     * 查询机构下所有子机构
     * @param orgRoot 顶级机构编码
     * @return
     */
    List<OrgDTO> getOrgList(String orgRoot) throws Exception;

    /**
     * 根据token查询对应的用户信息
     * @param token
     * @return
     * @throws Exception
     */
    UserDTO getUserByToken(String token) throws Exception;
    
    /**
     * 查询车辆的历史轨迹
     * @author: chenxin
     * @date: 2018年5月30日 下午11:37:02
     * @param plateNum
     * @param from
     * @param to
     * @return
     * @throws Exception
     */
    List<VehicleHistoryDTO> getVehicleHistoryLocation(String plateNum, String from, String to) throws Exception;
    /**
     * 查看当前车辆位置
     * @author: chenxin
     * @date: 2018年5月31日 上午12:34:23
     * @param vehicleNum
     * @return
     */
	VehicleHistoryDTO getVehicleCurrentLocation(String plateNum) throws Exception;
    
}
